#include <stdarg.h>
#include <iostream>
#include <time.h>
using namespace std;

int sum(int n, ...)
{
    va_list s;      // char*
    va_start(s, n); // 初始化s

    int sum = 0;
    while (n--)
    {
        sum += va_arg(s, int); // 提取下一个参数，并让s指向再下一个参数的起始地址
    }
    va_end(s); // s = nullptr
    return sum;
}

// int main()
// {
//     cout << sum(2, 1, 2) << endl;
//     cout << sum(3, 1, 2, 3) << endl;
//     cout << sum(4, 1, 2, 3, 4) << endl;
//     cout << sum(5, 1, 2, 3, 4, 5) << endl;
//     return 0;
// }

// int main()
// {
//     time_t t = time(nullptr);
//     struct tm *ctime = localtime(&t);
//     printf("%d-%d-%d %d:%d:%d\n", ctime->tm_year + 1900, ctime->tm_mon + 1, ctime->tm_mday,
//            ctime->tm_hour, ctime->tm_min, ctime->tm_sec);

//     return 0;
// }

void Print(int cnt, const char *format, ...)
{
    va_list s;
    va_start(s, format);
    char buffer[1024];
    vsnprintf(buffer, sizeof(buffer), format, s);
    va_end(s);

    while (cnt--)
    {
        printf("%s\n", buffer);
    }
}

int main()
{
    int n = 10;
    const char *s = "hello";
    float f = 3.14;
    Print(3, "%d-%s-%f", n, s, f);

    return 0;
}